﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using ServiceGerenciador.Model;

public partial class paginas_AtividadeNovo : System.Web.UI.Page
{
    protected int ModelId
    {
        get
        {
            if (Request.QueryString["Id"] != null)
            {
                return Convert.ToInt32(Request.QueryString["Id"]);
            }
            else
            {
                return 0;
            }
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //retona vetor: FindAll();
            var pessoas = Person.FindAll();

            ddlPessoa.DataSource = pessoas;
            ddlPessoa.DataTextField = "Nome";
            ddlPessoa.DataValueField = "Id";
            ddlPessoa.DataBind();
            ddlPessoa.Items.Insert(0, "-- SELECIONE --");

            //retona vetor: FindAll();
            var service = Service.FindAll();

            ddServico.DataSource = service;
            ddServico.DataTextField = "Servico";
            ddServico.DataValueField = "IdServico";
            ddServico.DataBind();
            ddServico.Items.Insert(0, "-- SELECIONE --");
        }
        Initialize();

    }

    private void Initialize()
    {
        if (!IsPostBack)
        {
            if (this.ModelId > 0)
            {
                FuncionarioServicos service = new FuncionarioServicos();
                service = FuncionarioServicos.Find(ModelId);

                ddlPessoa.SelectedValue = Convert.ToString(service.Pesfs.Id);
                ddServico.SelectedValue = Convert.ToString(service.Servicofs.idServico); 
            }
        }
    }

    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (ModelId > 0)
            {
                //incluir serviço
                //Service service = new Service();
                //service = Service.Find(ModelId);                

                //inclusão de pessoas que prestam este serviço
                FuncionarioServicos servico = new FuncionarioServicos();
                servico = FuncionarioServicos.Find(ModelId);
                
                servico.Pesfs = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                servico.Servicofs = Service.Find(Convert.ToInt32(ddServico.SelectedValue));                
                servico.Update();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Atividade atualizada com sucesso!";

                Response.Redirect("Atividades.aspx");
            }
            else
            {   

                //inclusão de pessoas que prestam este serviço
                FuncionarioServicos servico = null;
                servico = new FuncionarioServicos();                
                
                servico.Pesfs = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                servico.Servicofs = Service.Find(Convert.ToInt32(ddServico.SelectedValue));                                
                servico.Save();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Atividade cadastrada com sucesso!";

                Response.Redirect("Atividades.aspx");
            }

        }
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Atividades.aspx");
    }

    protected void btnExcluir_Click(object sender, EventArgs e)
    {
        FuncionarioServicos service = FuncionarioServicos.Find(ModelId);
        service.Delete();

        ApplicationEnvironment.Instance.Flash["Notice"] = "Atividade excluída com sucesso!";

        Response.Redirect("Atividades.aspx");

    }
}
